﻿//----------------------------------------------
// 作者:江怀玉
// 依赖:
//       1、jQuery 
//       2、Jquery.json插件
// 说明: 将JSON数据，回传到页面
// 
// Version :V 0.1.0
// 表单操作类库
// 1、将JSON数据影射到Form里
// 2、将From的数据转换成JSON数据格式
// 3、URLEncode
// 4、数据保存操作
// 5、数据修改操作
// ----------------------------------------------------------
// 6、数据删除操作
// 7、数据查询
// 8、自定义控件增加了关键字段，用于指定搜索数据的条件关键字
// ---------------------------------------------------------


$.fn.toObject = function () {
    //debugger
    var accum = {};
    function add(accum, namev, value) {
        if (namev.length == 1) {
            if (namev[0] != "") {
                accum[namev[0]] = $.encodeURI(value);
            }
        }
        else {
            if (accum[namev[0]] == null)
                accum[namev[0]] = {};
            add(accum[namev[0]], namev.slice(1), $.encodeURI(value));
        }
    };

    this.find('input, textarea, select,div').each(function () {
        try {
            if ($(this).attr("convert") != "unconvert") {
                if ($(this).attr("ctrlType") != "" && $(this).attr("ctrlType") != undefined) {
                    debugger
                    add(accum, $(this).attr('name').split('.'), $.trim($(this).attr("SValue")));
                } else {
                    add(accum, $(this).attr('name').split('.'), $.trim($(this).val()));
                }
            }
        } catch (Error) { }
    });
    return accum;
};

//生成GUID
function guid() {
    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
        var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
        return v.toString(16);
    });
}

function newGuid() {
    var guid = "";
    for (var i = 1; i <= 32; i++) {
        var n = Math.floor(Math.random() * 16.0).toString(16);
        guid += n;
        if ((i == 8) || (i == 12) || (i == 16) || (i == 20))
            guid += "-";
    }
    return guid;
}


$.fn.mini = function () {
    var accum = {};
    function add(accum, namev, value) {
        if (namev.length == 1) {
            if (namev[0] != "") {
                accum[namev[0]] = $.encodeURI(value);
            }
        }
        else {
            if (accum[namev[0]] == null)
                accum[namev[0]] = {};
            add(accum[namev[0]], namev.slice(1), $.encodeURI(value));
        }
    };


    this.find("[class*='mini_']").each(function () {

        try {
            if ($(this).attr("convert") != "unconvert") {
                if ($(this).attr("ctrlType") != "" && $(this).attr("ctrlType") != undefined) {
                    debugger
                    add(accum, $(this).attr('name').split('.'), $.trim($(this).attr("SValue")));
                } else {
                    add(accum, $(this).attr('name').split('.'), $.trim($(this).val()));
                }
            }
        } catch (Error) { }
    });
    return accum;
}